void draw_ellipse_section(Adafruit_GFX_STM32 *screen, int16_t x, int16_t y, int16_t x0, int16_t y0, uint8_t option, boolean fill, uint16_t color) {
  /* upper left */
  if (option & 0x01) {
    if(fill)
      screen->drawFastVLine(x0-x, y0-y, y+1, color);
    else
      screen->drawPixel(x0 - x, y0 - y, color);
  }

  /* upper right */
  if (option & 0x02) {
    if(fill)
      screen->drawFastVLine(x0+x, y0-y, y+1, color);
    else
      screen->drawPixel(x0 + x, y0 - y, color);
  }

  /* lower right */
  if (option & 0x04) {
    if(fill)
      screen->drawFastVLine(x0+x, y0, y+1, color);
    else
      screen->drawPixel(x0 + x, y0 + y, color);
  }

  /* lower left */
  if (option & 0x08) {
    if(fill)
      screen->drawFastVLine(x0-x, y0, y+1, color);
    else
      screen->drawPixel(x0 - x, y0 + y, color);
  }
}